package ec.edu.uce.tour.facade.impl;

import java.util.List;

import javax.ejb.EJB;
import javax.ejb.Local;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;

import ec.edu.uce.tour.dao.util.ParametroSentencia;
import ec.edu.uce.tour.dto.CiudadDTO;
import ec.edu.uce.tour.dto.ProvinciasDTO;
import ec.edu.uce.tour.dto.SelectOneListDTO;
import ec.edu.uce.tour.excepcion.UceTourException;
import ec.edu.uce.tour.facade.UceTourGeneralServicio;
import ec.edu.uce.tour.servicio.catalogo.ServicioCatalogos;

@Stateless
@Local(UceTourGeneralServicio.class)
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public class UceTourGeneralServicioBean implements UceTourGeneralServicio {
	
	@EJB
	private ServicioCatalogos servicioCatalogos;

	@Override
	public List<SelectOneListDTO> obtenerDatosSelectList(Class<?> nombre,
			String campoId, String campoValue, String estadoCampo,
			ParametroSentencia parametro) throws UceTourException {
		return servicioCatalogos.obtenerDatosSelectList(nombre, campoId, campoValue, estadoCampo, parametro);
	}

	@Override
	public <T> List<T> obtenerListaCatalogos(Class<T> nombre)
			throws UceTourException {
		return servicioCatalogos.obtenerListaCatalogos(nombre);
	}

	@Override
	public void modificarCatalogo(Object catalogo) throws UceTourException {
		servicioCatalogos.modificarCatalogo(catalogo);
	}

	@Override
	public void guardarCatalogo(Object catalogo) throws UceTourException {
		servicioCatalogos.guardarCatalogo(catalogo);
	}

	@Override
	public Object cargarCatalogoPorId(Class<?> nombre, Integer idCatalogo)
			throws UceTourException {
		return servicioCatalogos.cargarCatalogoPorId(nombre, idCatalogo);
	}

	@Override
	public List<CiudadDTO> cargarListaCiudadesPorIdPais(Integer idPais)
			throws UceTourException {
		return servicioCatalogos.cargarListaCiudadesPorIdPais(idPais);
	}

	@Override
	public List<CiudadDTO> cargarListaProvinciasPorIdPais(Integer idPais)
			throws UceTourException {
		return servicioCatalogos.cargarListaProvinciasPorIdPais(idPais);
	}

	@Override
	public List<ProvinciasDTO> cargarProvinciasPorPais(Integer idPais)
			throws UceTourException {
		return servicioCatalogos.cargarProvinciasPorPais(idPais);
	}

}
